﻿<?php
/**
* @version		$Id: view.html.php 9764 2007-12-30 07:48:11Z ircmaxell $
* @package		Joomla
* @subpackage	Poll
* @copyright	Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
* @license		GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/


// Check to ensure this file is included in Joomla!
defined('_JEXEC') or die();

jimport( 'joomla.application.component.view');

class amapViewadvoirdistrib extends JView
{
	var $amap;

	function display($tpl = null)
	{
		if($this->amap->adLoggue)
		{

	$mainframe =& JFactory::getApplication();	
			$database =& JFactory::getDBO();
			$document =& JFactory::getDocument();
			$pathway  =& $mainframe->getPathway();

			// Adds parameter handling
			$params = $mainframe->getParams();
			
			// infos abonnement
			$abonnement = $mainframe->getUserState("amap_abonnement", NULL);

			// date distrib
			$date = JRequest::getVar('distrib', '');
		//echo "---------------------------".$date;	
			// traitement du parametre date lorsqu'il vaut "next" 
			if ($date == "next") {
				$this->amap->loadDistrib();
			$date = $this->amap->listeDistrib->surlignage;
			//$date = JRequest::getVar('distrib', 'Date');
			//$date = fdate($this->amap->listeDistrib['table']['Date']);
	//	var_dump($this->amap->listeDistrib);

			}
			
			//Set page title information
			$document->setTitle('Livraison du '.fdate($date));
			//Set pathway information
			$pathway->addItem($abonnement['Nom'], 'index.php?option=com_amap&amp;view=advoirabo&amp;abo='.$abonnement['Nom']);
			$pathway->addItem('Livraison du '.fdate($date), '');
			
			$params->def( 'show_page_title', 1 );
			$params->def( 'page_title', 'Abonnement');

			echo "<p>Livraison du <b>".fdate($date)."</b> pour le contrat <b>".$abonnement["Nom"]."</b></p><br/>";

			if($date != '' && JRequest::getVar('abo', '') != '' && $abonnement != NULL){
				// pour vérifier que la distribution sélectionné n'est pas antérieur à la premiere distribution de l'adhérent
				$tmp = $this->amap->aboadherent['PremiereDistribution'];
			
				// détermine si l'abonnement de l'adhérent est valide
				$aboEstSouscrit = ($this->amap->aboEstSouscrit() && $date >= $tmp);
			
				// détermine si le panier de l'adhrent est orphelin
				$panierAdOrph = $this->amap->estOrphelin($date);
				
				// détermine si le panier de l'adhérent est reporté et renvoie la date si c'est le cas sinon NULL
				$dateReport = $this->amap->estReporte($date);

				// calcul le dernier délai pour accéder à une distribution
				$tmp = strtotime($date." ".$abonnement['Delai']);
	
				$nbJours = $abonnement['JoursPreparation']; // nombre de jours de préparation avant la date de distribution
				$dernierDelai = $tmp - NB_SEC_JOUR * $nbJours; // on prend la date de la distribution et on retire le nombre de jour de préparation

				// par défaut on suppose qu'on ne peut pas agir sur la distribution
				$lectureSeule = TRUE;

				echo '<div class="amap_bloc">';
				echo '<h3 class="amap_titre">Mon statut</h3>';

				if(!$panierAdOrph && $dateReport == NULL){
					echo 'Vous avez <strong>'.$this->amap->nbPaniers($date).'</strong> panier(s) à venir chercher ce jour là.';
				}

				// Vérifie qu'on a pas dépasser le dernier délai pouragir sur la distribution
				if(time() < $dernierDelai){

					// on n'a pas dépassé le dernier délai donc on peut agir sur la distribution
					$lectureSeule = FALSE;
				
					// charge le statut de l'adhérent relatif à la distribution
					$statut = $this->amap->adStatutDistrib($date);

					if(!$panierAdOrph){
						// gestion des statuts
						switch($statut){
							case 'Inscrit':
								echo '<p>Vous faite partie de <strong>l\'équipe de livraison</strong>. <a class="amap_bouton" href="index.php?option=com_amap&amp;task=adInscDistr&amp;statut=Abandonne&amp;distrib='.$date.'">Se désinscrire</a></p>';
							break;
							case 'Abandonne':
								echo '<p>Vous avez <strong>annulé</strong> votre inscription dans l\'équipe de livraison . <a class="amap_bouton" href="index.php?option=com_amap&amp;task=adInscDistr&amp;statut=Inscrit&amp;distrib='.$date.'">Revenir dans l\'équipe de livraison</a></p>';
							break;
							case 'Chef d\'équipe':
								echo '<p>Vous êtes le <strong>responsable</strong> de l\'équipe de livraison. <a class="amap_bouton" href="index.php?option=com_amap&amp;task=adInscDistr&amp;statut=Abandonne&amp;distrib='.$date.'">Se désinscrire</a></p>';
							break;
							case NULL:
								echo '<p>Vous ne faite pas parti <strong>l\'équipe de livraison</strong>. <a class="amap_bouton" href="index.php?option=com_amap&amp;task=adInscDistr&amp;statut=Inscrit&amp;distrib='.$date.'">S\'inscrire dans l\'équipe</a> <a class="amap_bouton" href="index.php?option=com_amap&amp;task=adInscDistr&amp;statut=Chef&amp;distrib='.$date.'">S\'inscrire en tant que chef d\'équipe</a></p>';
							break;
						}
					}
				} else {
					message("La livraison sélectionnée a déja eu lieu.");
				}
				
				// charge la liste des paniers orphelins
				$this->amap->loadListeOrph($date, $panierAdOrph);	
		
				if($aboEstSouscrit){
					// si le panier de l'adhérent est orphelin alors l'indiquer et si on est pas en lecture seule, donner la possibilité d'annuler
					if($panierAdOrph){
						echo '<p>Vous avez déclarer votre panier <strong>orphelin</strong>.</p>';
						if(!$lectureSeule && !$this->amap->panierAdAdopte($date)){
							echo '<a class="amap_bouton" href="index.php?option=com_amap&amp;task=adOrphDecl&amp;distrib='.$date.'&amp;action=annule">Annuler la recherche d\'adoptant</a></p>';
						} else {
							echo 'Votre panier a été <strong>adopté</strong>.';
						}
					// sinon donner la possbilité de le déclarer orphelin
					} elseif($dateReport == NULL && !$lectureSeule && $this->amap->listeOrphAdopteAd == NULL){

//20131818BM désactivé
//						echo '<p>En cas d\'empêchement, vous pouvez déclarer votre panier <strong>orphelin</strong> pour tenter de trouver un repreneur.</p><a class="amap_bouton" href="index.php?option=com_amap&amp;task=adOrphDecl&amp;distrib='.$date.'&amp;action=declare">Déclarer mon panier orphelin</a>';
					}
					
					if($this->amap->listeOrphAdopteAd != NULL){
						echo '<p>Vous avez <strong>adopté</strong> un ou plusieurs panier(s), vous ne pouvez donc pas déclarer le votre <strong>orphelin</strong>.';
					}
			//		echo '</div>';

					// détermine si un report sortant est possible
					$reportSortant = $this->amap->listeDistributionsReport($date);

					// on ne peut pas reporter un panier orphelin
					if(!$panierAdOrph){
						if($reportSortant){
							// si on a pas déjà report le panier, proposer de le faire
							if($dateReport == NULL && !$lectureSeule){
									echo '<div class="amap_bloc">';
			//						echo '<h3 class="amap_titre">Reporter mon panier</h3>';
									$this->amap->formulaire = $this->amap->formulaireReport($date);
									$this->amap->formulaire->affiche();
			//						echo '</div>';
							} elseif($dateReport != NULL) {
			//					echo '<div class="amap_bloc">';
								echo '<h3 class="amap_titre">Reporter mon panier</h3>';
								echo '<p>Vous avez reporté votre panier au <strong>'.$dateReport.'</strong>.</p>';
								if(!$lectureSeule){
									echo '<a class="amap_bouton" href="index.php?option=com_amap&amp;task=adReport&amp;dateInitial='.$date.'">Annuler</a>';
								}
			//					echo '</div>';
							}
						} else { // on n'affiche rien plutôt qu'une erreur risquant de perturber
							// echo '<div class="amap_bloc">';
							// echo '<h3 class="amap_titre">Reporter mon panier</h3>';
							// echo "<p>Le <strong>report</strong> de panier n'est pas disponible à cette date.</p>";
							// echo '</div>';
						}
						
					}
				} else {
			//		echo '</div>';
				}			

//20131818BM désactivé
//				echo '<div class="amap_bloc">';
//				echo '<h3 class="amap_titre">Paniers orphelins à adopter</h3>';		
				if($this->amap->listeOrphDistrib != NULL){
					// affiche la liste des paniers orphelin à adopter
					// si on est pas en lecture seule alors ajouter des boutons de commande
					if(!$lectureSeule){
						//l'adhérent ne doit pas avoir déclarer son panier orphelin s'il veut en adopter un
						if(!$panierAdOrph){
							$this->amap->listeOrphDistrib->commandes = array(
								0=>array('href'=>'index.php?option=com_amap&amp;task=adOrphRecup&amp;distrib='.$date,
										'icone'=>'adopter.png',
										'title'=>'Adopter ce panier',
										'param'=>array('ida'=>'IDA'))
								);
						}
					}
					$this->amap->listeOrphDistrib->afficheTable();
				} else {
//20131818BM désactivé
		//			echo "Pas de paniers orphelins à adopter pour cette distribution";
				}
			//	echo '</div>';
	
				if($this->amap->listOrphAdopte != NULL){
				//	echo '<div class="amap_bloc">';
					echo '<h3 class="amap_titre">Paniers adoptés</h3>';		

					// affiche la liste des paniers orphelins adoptés
					$this->amap->listOrphAdopte->afficheTable();
					
				//	echo '</div>';
				}
				
				if($panierAdOrph){
					// affiche la liste des adoptants du panier de l'ahdérent
					if($this->amap->listeAdoptantPanierAd != NULL){
				//		echo '<div class="amap_bloc">';
						echo '<h3 class="amap_titre">Ceux qui ont adoptés mon panier</h3>';	
						$this->amap->listeAdoptantPanierAd->afficheTable();
				//		echo '</div>';
					}
				}

				if(!$panierAdOrph){
					// la liste des paniers orphelins adopté par l'adhérent avec bouton pour se rétracter si pas en lecture seule
					if($this->amap->listeOrphAdopteAd != NULL){
				//		echo '<div class="amap_bloc">';
						echo '<h3 class="amap_titre">Les paniers que j\'ai adoptés</h3>';	
						// si on est pas en lecture seule alors ajouter des boutons de commande
						if(!$lectureSeule){
							$this->amap->listeOrphAdopteAd->commandes = array(						
							0=>array('href'=>'index.php?option=com_amap&amp;task=adOrphAnnulRecup&amp;distrib='.$date,
									'icone'=>'annuler.png',
									'title'=>'Renoncer à ce panier',
									'param'=>array('ida'=>'IDA'))
							);
						}
						$this->amap->listeOrphAdopteAd->afficheTable();
				//		echo '</div>';
					}
				}
				
				$this->amap->loadEquipeDistrib($date);
				
				$ok = FALSE; // l'adhérent fait-il parti de l'équipe de distribution ? par défaut on suppose que non
				
				// si il y a des inscrits participant  à la distribution alors afficher la liste
				if($this->amap->listeEquipeDistrib != NULL){
					echo '<div class="amap_bloc">';
					echo '<h3 class="amap_titre">L\'équipe de livraison</h3>';
					$this->amap->listeEquipeDistrib->afficheTable();
					echo '</div>';

					$ida = $mainframe->getUserState('amap_ida', 0);	
				
					// vérifie que l'adhérent fait parti de la liste de distribution
					foreach($this->amap->listeEquipeDistrib->table as $valeur){
						if($ida == $valeur['IDA']){
							$ok = TRUE;
						}
					}
				}
				
				// les rapports s'obtiennent soit en faisant parti de l'équipe de distribution, soit en ayant les droits d'abonnements
				// Modif : 20091026 : Les équipes de distribution n'étant pas encore traitées en ligne, la liste de distribution est accessible à tous ... 
				// if($mainframe->getUserState("amap_droitAbo", FALSE) || $ok){
					echo '<div class="amap_bloc">';
					echo '<h3 class="amap_titre">Liste de livraison à imprimer</h3>';
					echo '<p>Ce document liste toutes les commandes à livrer</p>';
					echo '<a class="amap_bouton" href="index.php?option=com_amap&amp;task=exportListeDistrib&amp;distrib='.$date.'&amp;type=html">Impression depuis le navigateur</a>';
					echo '<a class="amap_bouton" href="index.php?option=com_amap&amp;task=exportListeDistrib&amp;distrib='.$date.'&amp;type=xls">Obtenir la liste pour Excel</a>';
					echo '</div>';
				//}
				
								
				// permet la saisie d'un compte rendu de distribution si l'adhérent est le chef d'équipe
				if($statut == "Chef d'équipe"){
					echo '<div class="amap_bloc">';
					echo '<h3 class="amap_titre">Compte rendu de la livraison</h3>';
					echo 'En tant que responsable de l\'équipe de livraison, vous pouvez utiliser le formulaire ci-dessous pour faire un compte rendu du déroulement de la livraison.';
					$this->amap->formulaire = $this->amap->formulaireCompteRendu($date);
					$this->amap->formulaire->affiche();
					echo '</div>';					
				}
				
				echo '<p class="amap_legend"><img src="components/com_amap/images/aide.png" style="position:relative;top:6px;margin-right:4px;" />Besoin d\'aide ?</p>';
				echo '<div id="amap_footer">';
				echo "
				Cet écran vous présente les informations relatives à la livraison mentionnée en titre. 
				La rubrique <b>'Mon statut'</b> vous permet de savoir ou vous en êtes.  
				";
				echo '</div>';

			}
		}
		parent::display($tpl);
	}
}
?>
